// 该文件用于创建Vuex中最核心的store

// 引入Vue
import Vue from "vue";

// 引入Vuex
import Vuex from "vuex";

Vue.use(Vuex);

// actions----用于响应组件中的动作
const actions = {

  addOdd(context, value) {
    if (context.state.sum % 2) {
      context.commit("AddOdd", value);
    }
  },

  addWait(context, value) {
    setTimeout(() => {
      context.commit("AddWait", value);
    }, 500);
  },
};

// mutations----用于操作数据
const mutations = {
  // (4) state 用来获取并操作里面的数据
  Add(state, value) {
    //  console.log('mutations里面的Add被调用了',state,value);
    state.sum += value;
  },

  Sub(state, value) {
    state.sum -= value;
  },

  AddOdd(state, value) {
    state.sum += value;
  },

  AddWait(state, value) {
    state.sum += value;
  },
};

// states----用于存储数据
const state = {
  sum: 0,
  school:'尚硅谷',
  subject:'前端'
};

// 默认暴露，适合只暴露一个数据
export default new Vuex.Store({
  actions,
  mutations,
  state,
});
